package uk.ac.lkl.common.allocator.ui;



//import java.awt.Point;
//import java.awt.event.MouseEvent;
//import java.util.ArrayList;

//import javax.swing.event.*;

import uk.ac.lkl.common.allocator.AllocatorModel;
//import uk.ac.lkl.common.allocator.ScheduleObject;



/**
 * An abstract class that handles a drag operation.
 * 
 * @author Darren Pearce
 * @version $Revision: 370 $
 * @version $Date: 2007-11-12 14:58:00 +0000 (Mon, 12 Nov 2007) $
 * 
 */
public abstract class Dragger<O> {

    protected SwitchingAllocatorView<O> scheduleView;

    // convenience for sub-classes
    protected AllocatorModel<O> schedule;


    public Dragger(SwitchingAllocatorView<O> scheduleView) {
        this.scheduleView = scheduleView;
        schedule = scheduleView.getAllocator();
    }


    public abstract void processMousePressed(O object, int row, int column);


    public abstract void processMouseDragged(O object, int row, int column);


    public abstract void processMouseReleased(O object, int row, int column);

}
